{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![openclassrooms](https://s3.eu-west-1.amazonaws.com/course.oc-static.com/courses/6204541/1+HnqdJ-5ofxiPP9HIxdNdpw.jpeg)\n",
    "\n",
    "# Initiez-vous à Python pour l'analyse de données\n",
    "\n",
    "## Quiz : Utilisez des librairies Python spécialisées\n",
    "\n",
    "<br><br>\n",
    "\n",
    "**On va à présent mixer les deux jeux présentés dans la question précédente ! En effet, à chaque tour, on lance une pièce (cette fois-ci...) équilibrée ! Si l'on a pile, on joue au jeu A, sinon on joue au jeu B.\n",
    "On suppose que le joueur a 1000 euros comme capital de départ.\n",
    "Après avoir joué 1.000.000 de parties, quel est le statut du jeu, du point de vue du joueur ?**\n",
    "\n",
    "Cette fois encore, organisons notre code en deux parties :\n",
    "1. Tout d'abord, la définition des différentes pièces qui vont être lancées via différentes fonctions\n",
    "2. le test de notre jeu sur de nombreux lancés\n",
    "\n",
    "Définissons donc les fonctions :"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import random\n",
    "    \n",
    "def pieceEquilibre():\n",
    "    if random.uniform(0,1) <= 0.5:\n",
    "        return 'pile'\n",
    "    else:\n",
    "        return 'face'\n",
    "\n",
    "def pieceJeuA():\n",
    "    if random.uniform(0,1) <= 0.49:\n",
    "        return 'pile'\n",
    "    else:\n",
    "        return 'face'\n",
    "    \n",
    "def pieceJeuB1():\n",
    "    if random.uniform(0,1) <= 0.09:\n",
    "        return 'pile'\n",
    "    else:\n",
    "        return 'face'\n",
    "    \n",
    "def pieceJeuB2():\n",
    "    if random.random() <= 0.74:\n",
    "        return 'pile'\n",
    "    else:\n",
    "        return 'face'"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Test du jeu mixé :"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Après 1000000 lancés, on a 5672 € de capital\n"
     ]
    }
   ],
   "source": [
    "capital = 1000\n",
    "nb_lances = 1000000\n",
    "\n",
    "for i in range(nb_lances):\n",
    "    piece_choix_jeu = pieceEquilibre()\n",
    "    \n",
    "    if piece_choix_jeu == 'pile':\n",
    "        piece = pieceJeuA()   # on part sur le jeu A si la pièce équilibrée tombe sur pile\n",
    "        if piece == 'pile':\n",
    "            capital += 1  # on gagne 1 euro si on a pile\n",
    "        else:\n",
    "            capital -= 1  # on perd 1 euro sinon\n",
    "            \n",
    "    else:   # On part sur le jeu B si la pièce équilibrée tombe sur face\n",
    "        if capital % 3 == 0:  # on vérifie si le capital est un multiple de 3 ou non\n",
    "            piece = pieceJeuB1()\n",
    "        else:\n",
    "            piece = pieceJeuB2()\n",
    "\n",
    "        if piece == 'pile':\n",
    "            capital += 1  # on gagne 1 euro si on a pile\n",
    "        else:\n",
    "            capital -= 1  # on perd 1 euro sinon\n",
    "        \n",
    "\n",
    "print(\"Après\", nb_lances, \"lancés, on a\", capital, \"€ de capital\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Vous pouvez executer le code plusieurs fois pour en avoir le coeur net (voire augmenter le nombre de lancés), mais vous finirez toujours avec un capital final plus élevé que le capital initial : **le jeu mixé des jeux A et B est cette fois ci gagnant !**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
